#ifndef __VERIFY_CRC16_H__
#define __VERIFY_CRC16_H__

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 计算crc16校验码
 * @param pu8Data 待校验数据指针
 * @param u32Len 待校验数据长度
 * @return uint32_t 校验码
 */
uint32_t
cbb_verify_crc16_calculate(uint8_t *pu8Data, uint32_t u32Len);

/**
 * @brief 校验crc16校验码
 * @param pu8Data 待校验数据指针
 * @param u32Len 待校验数据长度
 * @return uint8_t 校验结果，1表示校验成功，0表示校验失败
 */
uint8_t
cbb_verify_crc16_check(uint8_t *pu8Data, uint32_t u32Len);

/**
 * @brief 追加crc16校验码
 * @param pu8Data 待校验数据指针
 * @param pu32Len 待校验数据长度指针
 * @return uint8_t 校验结果，1表示校验成功，0表示校验失败
 */
uint8_t
cbb_verify_crc16_append(uint8_t *pu8Data, uint32_t *pu32Len);

#ifdef __cplusplus
}
#endif

#endif /* __VERIFY_CRC16_H__ */
